package com.sumainfor.pc.market.feign.Zfeign;

import com.sumainfor.common.util.JsonResult;
import com.sumainfor.pc.market.fallback.ZfallBack.ZpcGmioFallback;
import feign.Headers;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;


/**
 * 微信端租客的服务
 */
@FeignClient(name = "tANGNEST-PC-GMIo", fallback = ZpcGmioFallback.class)
public interface ZpcGmioFeign {
    /**
     * 创建合同的时候去市场部创建合同周期内的所有账单
     */
    @PostMapping("/secretary/TenantBill/key/addTenantBillForPact")
    @Headers({"Content-Type: application/json", "Head-Type: 3"})
    JsonResult addTenantBillForPact(@RequestBody Map<String, Object> params);

    /**
     * 签约时合同如果需要服务中心经理审核就需要新增一条账单/违约金异常记录
     */
    @PostMapping("/secretary/SeBillAbnormal/key/addSeBill")
    JsonResult addSeBill(@RequestBody Map<String, Object> params);

    /**
     * 租客端统计智能电表余额的时候查询房源对应的收费标准
     */
    @PostMapping("/director/DiChargesDept/key/getRdChargesDeptList")
    JsonResult getRdChargesDeptList(@RequestBody Map<String, Object> params);
    /**
     * 租客端变更租约查询是否发起过延期退
     */
    @GetMapping("/director/DiDeferredApply/key/getDiDaCount")
    JsonResult getDiDaCount(@RequestParam Map<String, Object> params);


    /**
     * 查询收费标准数据 根据收费标准的编号进行查询
     *
     * @param chaId
     * @return
     */
    @PostMapping("/key/houow/getChargesData")
    JsonResult getChargesData(@RequestParam("chaId") String chaId);

    /**
     * 根据收费标准编号查询收费详情
     * @param params
     * @return
     */
    @GetMapping("/key/marketPact/getChaId")
    JsonResult getChaId(@RequestParam Map<String,Object> params);

    @PostMapping("/key/WatGasEleExs/getGEW")
    Map<String,Object> getGEW(@RequestBody Map<String,Object> params);

    @PostMapping("/key/WatGasEleExs/getGEWOut")
    Map<String,Object> getGEWOut(@RequestBody Map<String,Object> params);

    @PostMapping("/key/WatGasEleExs/getGEWTuiZu")
    List<Map<String,Object>> getGEWTuiZu(@RequestBody Map<String,Object> params);

    @PostMapping("/key/WatGasEleExs/getGEWTuiZuOut")
    List<Map<String,Object>> getGEWTuiZuOut(@RequestBody Map<String,Object> params);


    @PostMapping("/key/WatGasEleExs/getRoomMoney")
    List<Map<String,Object>> getRoomMoney(@RequestBody Map<String,Object> params);



    @PostMapping("/key/WatGasEleExs/getcharge")
    Map<String,Object> getcharge(@RequestBody Map<String,Object> params);

    @PostMapping("/key/WatGasEleExs/getWatNumber")
    Map<String,Object> getWatNumber(@RequestBody Map<String,Object> params);

    @PostMapping("/key/WatGasEleExs/getGasNumber")
    Map<String,Object> getGasNumber(@RequestBody Map<String,Object> params);

    @PostMapping("/key/WatGasEleExs/getEleNumber")
    Map<String,Object> getEleNumber(@RequestBody Map<String,Object> params);


    @PostMapping("/key/WatGasEleExs/getOwerdeal")
    List<Map<String,Object>> getOwerdeal(@RequestBody Map<String,Object> params);



    @PostMapping("/key/WatGasEleExs/getTenwithdrawal")
    Map<String,Object> getTenwithdrawal(@RequestBody Map<String,Object> params);





}
